<html>
    <head>

        <style>
            body {
                margin: 0;
            }

            iframe {
                width: 100%;
                height: 100%;
                border: 0 none;
            }
        </style>
    </head>
    <body>
        <script>
            var gui = require('nw.gui');
            var screenInitialized = false;
            function obtainDesktopStream (callback, errorCallback) {
                if (!screenInitialized) {
                    gui.Screen.Init();
                    screenInitialized = true;
                }
                gui.Screen.chooseDesktopMedia(
                    ["window","screen"],
                    function(streamId) {
                        var vid_constraint = {
                            mandatory: {
                                chromeMediaSource: 'desktop',
                                chromeMediaSourceId: streamId,
                                maxWidth: 1920,
                                maxHeight: 1080
                            },
                            optional: []
                        };
                        navigator.webkitGetUserMedia({
                            audio: false, video: vid_constraint
                        }, callback, function (error) {
                            errorCallback &&
                                errorCallback(error, vid_constraint);
                        });
                    }
                );
            }

            // use Esc to leave fullscreen mode
            nw.App.registerGlobalHotKey(new nw.Shortcut({
                key: "Escape",
                active: function () {
                    var win = nw.Window.get();
                    if (win.isFullscreen) {
                        win.leaveFullscreen();
                    }
                }
            }));

            // create iframe with jitsi-meet
            var iframe = document.createElement('iframe');
            iframe.src = nw.App.manifest['jitsi-url'];
            iframe.allowFullscreen = true;
            iframe.onload = function () {
                iframe.contentWindow.JitsiMeetNW = {
                    obtainDesktopStream: obtainDesktopStream
                };
            };

            document.body.appendChild(iframe);
        </script>
    </body>
</html>
